home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Shareware World / Info / For Developers / MacZoop 1.8.3 / Required Classes / Z Headers / ZObjectArray.h < prev    next >
Text File  |  1998-06-11  |  1KB  |  68 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"         
  5. *
  6. *
  7. *
  8. *            ZObjectArray.h        -- the basic container class object
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1996, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21.  
  22. #pragma once
  23.  
  24. #ifndef __ZOBJECTARRAY__
  25. #define    __ZOBJECTARRAY__
  26.  
  27. #ifndef __ZARRAY__
  28. #include    "ZArray.h"
  29. #endif
  30.  
  31.  
  32. DEFINECLASSID( ZObjectArray, 'zoba' );
  33.  
  34.  
  35. template <class T> class ZObjectArray : public ZArray
  36. {
  37. protected:
  38.     T***    o;
  39.     
  40. public:
  41.     ZObjectArray();
  42.     
  43.     virtual T*        GetObject( const long index );
  44.     virtual void    SetArrayItem(void* item, const long index);
  45.     virtual void    GetArrayItem(void* item, const long index);
  46.     virtual void    ConcatenateArray( ZObjectArray<T>* anArray );
  47.     virtual long    FindIndex(T* item);
  48.     virtual void    Swap( const long itema, const long itemb );
  49.     virtual void    DeleteObject(T* item);
  50.     virtual void    DisposeAll();
  51.     virtual Boolean    Contains(T* item);
  52.     virtual void    DoForEach( IteratorProcPtr aProc, const long ref );
  53.     virtual void    MoveItem( const long curIndex, const long newIndex );
  54.     virtual void    MoveToFront( const long index );
  55.     virtual void    MoveToBack( const long index );
  56.     
  57. // streaming:
  58.  
  59.     virtual void    WriteToStream( ZStream* aStream );
  60.     virtual void    ReadFromStream( ZStream* aStream );
  61. };
  62.  
  63.  
  64. typedef ZObjectArray<ZObject> ZObjectList;
  65.  
  66. DEFINECLASSID( ZObjectList, 'zoba' );
  67.  
  68. #endif